Rule of thumb for choosing an implementation of a Java Collection